package io.lvdaxian.leetcode.dynamic;

// https://leetcode.cn/problems/pascals-triangle-ii/

import java.util.Arrays;
import java.util.List;

/**
 * 119. 杨辉三角 II
 * 已解答
 * 简单
 * 相关标签
 * 相关企业
 * 给定一个非负索引 rowIndex，返回「杨辉三角」的第 rowIndex 行。
 * <p>
 * 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
 */
public class L119_GetRow_Case001 {
  public List<Integer> getRow(int rowIndex) {
    // 实际的长度
    int length = rowIndex + 1;
    Integer[] ans = new Integer[length];
    // 填充 1
    Arrays.fill(ans, 1);
    
    for (int idx = 2; idx < length; idx += 1) {
      
      Integer[] prev = Arrays.copyOf(ans, idx);
      for (int i = 1; i < idx; i += 1) {
        ans[i] = prev[i - 1] + prev[i];
      }
    }
    
    // 构建 结果
    return Arrays.asList(ans);
  }
  
  public static void main(String[] args) {
    System.out.println(new L119_GetRow_Case001().getRow(3));
    System.out.println(new L119_GetRow_Case001().getRow(0));
    System.out.println(new L119_GetRow_Case001().getRow(1));
  }
}
